/**
 * @param {number[]} nums
 * @return {number}
 * @description 对于异或运算
 * 任何数和0做异或运算 等于原来那个数 (false)
 * 任何数和自身做异或运算 等于0 (flase)
 * 两数不同 则为 1
 * 满足交换定律
 * 所以我们只需每个数都做异或运算即可
 */

var singleNumber = function (nums) {
    return nums.reduce((a,b)=>a^b)
};